package nsu.edu.zsq.service.sys;

import java.util.List;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.multipart.MultipartFile;

import com.github.pagehelper.PageInfo;

import nsu.edu.zsq.bean.Teacher;
import nsu.edu.zsq.param.PageQuery;

/** 
* Description: 教师的service类<br>
*/
public interface TeacherService {
    
    /**
     * 通过教师id获取一条教师信息
     * @param teacherId 教师id
     * @return Teacher
     */
    public Teacher getTeacher(int teacherId);
    
    /**
     * 通过院系id获取教师列表
     * @param orgId 院系id
     * @param pageQuery 分页数据
     * @return PageInfo<Teacher>
     */
    public PageInfo<Teacher> listTeacherWithPage(int orgId, PageQuery pageQuery);
    
    /**
     * 从Excel中导入教师信息
     * @param excelFile 页面上传的Excel文件
     */
    public void importTeacherFromExcel(MultipartFile excelFile);
    
    /**
     * 导出教师信息到excel表（xlsx格式）
     * @param response
     */
    public void exportTeacherToExcel(HttpServletResponse response);

    /**
     * 批量保存教师信息
     * @param teachers 教师信息列表
     */
    public void saveBatchTeacher(List<Teacher> teachers);
    
    /**
     * 保存单个教师信息
     * @param teacher 教师信息
     */
    public void saveTeacher(Teacher teacher);
    
    /**
     * 批量删除教师信息（不物理删除）
     * @param teacherIds 教师id数组
     */
    public void deleteBatchTeacher(int[] teacherIds);
    
    /**
     * 删除单个教师信息（不物理删除）
     * @param teacherId 教师id
     */
    public void deleteTeacher(int teacherId);
    
    /**
     * 更新一条教师信息
     * @param teacher 教师信息
     */
    public void updateTeacher(Teacher teacher);
    
    /**
     * 重置教师登录密码
     * @param teacherId 教师id
     */
    public void resetPassword(int teacherId);
}
